Updated and Validated
[betaflight.git] / docs / development / Building in Ubuntu.md
blob3bc2657cf21e03d543cbb84d9cc7a526a4da66cd
1 # Building in Ubuntu
3 Building for Ubuntu platform is remarkably easy.
4 This document is tested and based on the latest Ubuntu 20.04.03 LTS release and can also be used for WSL(2).
6 ### Clone betaflight repository and install toolchain
8     $ sudo apt update && apt upgrade
9     $ sudo apt install build-essential libblocksruntime-dev git curl clang
10     $ git clone https://github.com/betaflight/betaflight.git
11     $ cd betaflight
12     $ make arm_sdk_install
14 ### Updating and Rebuilding Firmware
16 Navigate to your local betaflight repository and use the following steps to pull the latest changes and rebuild your version of betaflight:
18     $ git pull
19     $ make clean TARGET=MATEKF405
20     $ make TARGET=MATEKF405 [OPTIONS=RANGEFINDER] [DEBUG=DBG]
22 Using the optional OPTIONS parameters you can specify options like RANGEFINDER.
23 Using the optional DEBUG parameter you can specify the debugger.
25 You'll see a set of files being compiled, and finally linked, yielding both an ELF and then a HEX.
26 You can use the Betaflight-Configurator to flash the `obj/betaflight_MATEKF405.hex` file.
27 Make sure to remove `obj/` and `make clean`, before building again.
29 ### Building Betaflight Configurator
31     $ sudo apt update && apt upgrade
32     $ sudo apt install libatomic1 npm
33     $ sudo npm install -g gulp-cli yarn
34     $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh
35     $ source ~/.bashrc
36     $ nvm install v14.18.2 (for exact version please check link below)
38 See [Betaflight Configurator Development](https://github.com/betaflight/betaflight-configurator#development) for how to build the Betaflight Configurator.
40 ### Flashing a target with Betaflight Configurator on Ubuntu 20.04
42 In most Linux distributions the user won't have access to serial interfaces by default. Flashing a target requires configuration of usb for dfu mode. To add this access right type the following command in a terminal:
44     $ sudo usermod -a -G dialout $USER
45     $ sudo usermod -a -G plugdev $USER
46     $ sudo apt-get remove modemmanager
47     $ (echo '# DFU (Internal bootloader for STM32 MCUs)'
48      echo 'ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="plugdev"') | sudo tee /etc/udev/rules.d/45-stdfu-permissions.rules > /dev/null
50 Please log out and log in to active the settings. You should now be able to flash your target using Betaflight Configurator.
53 Credit goes to K.C. Budd, AKfreak for testing, and pulsar for doing the long legwork that yielded the original content of this document.